#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
//void Score(int b[], int* max, int* min, float* avg)
//{
//	*max = 0,*min = 100;
//	int i = 0;
//	for (i = 0; i < 5; i++)
//	{
//		if (b[i] > *max)  *max = b[i];
//		if (b[i] < *min)  *min = b[i];
//		*avg += b[i]/5.0;
//	}
//}
//int main()
//{
//	int i = 0;
//	int b[5] = { 0 };
//	int max = 0, min = 0;
//	float avg = 0;
//	for (i = 0; i < 5; i++)
//	{
//		scanf("%d", &b[i]);
//	}
//	Score(b, &max, &min, &avg);
//	printf("max=%d,min=%d,avg=%.1f", max, min, avg);
//	return 0;
//}


//void Swap(int* p1, int* p2)
//{
//	int tmp = *p1;
//	*p1 = *p2;
//	*p2 = tmp;
//}
//int main()
//{
//	int p1, p2;
//	scanf("%d,%d", &p1, &p2);
//	Swap(&p1, &p2);
//	printf("%d,%d", p1, p2);
//	return 0;
//}
//
void GetFactor(int x, int *b, int* n)
{
	int i = 0;
	for (i = 1; i < x; i++)
	{
		if (x % i == 0)
		{
			*b++ = i;
			(*n)++;
		}
	}
}
int main()
{
	int x = 0,b[100] = {0}, n = 0, i = 0;
	scanf("%d", &x);
	GetFactor(x, b, &n);
	for (i = 0; i < n; i++)
	{
		printf("%d ", b[i]);
	}
	return 0;
}

//void GetOdd(int a[], int* b, int* m)
//{
//	int i = 0;
//	for (i = 0; i < 9; i++)
//	{
//		if (a[i] % 2 != 0)  a[(*b)++] = a[i];
//	}
//	*m = *b;
//}
//int main()
//{
//	int a[9] = { 0 },i = 0,b = 0,m = 0;
//	for (i = 0; i < 9; i++)
//	{
//		scanf("%d",&a[i]);
//	}
//	GetOdd(a,&b,&m);
//	if(m == 0)  printf("NO");
//	else
//	{
//		for (i = 0; i < m; i++)
//		{
//			printf("%d ",a[i]);
//		}
//	}
//	return 0;
//}